/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/10/11 14:37
 * @Copyright
 */
package IO2;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
/*
1、java.io.NotSerializableException:Student
   Student对象不支持序列化
2、参与序列化和反序列化的对象，必须实现Serializable接口
3、注意：通过源代码发现，Serializable接口只是一个标志接口
          public interface Serializable {
          }
          这个接口中什么代码都没有
          起到一个标识作用。Java虚拟机看到这个类实现了这个接口，可能会对该类进行特殊待遇

          java语言中采用什么机制来区分类
          1、首先通过类名进行对比，如果类名不一样，肯定不是同一个类
          2、如果类名相同，考序列版本号区分

          不同的人编写了同一个类，”但这两个类去是不是同一个类：。这个时候序列化版本号起作用了

 */
public class ObjectOutputStreamTest1 {
    public static void main(String[] args) throws Exception{
        //创建Student对象
        Student s=new Student(1111,"张三");
        //序列化
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("students"));
        //序列化对象
        oos.writeObject(s);
        //刷新
        oos.flush();
        //关闭
        oos.close();
    }
}
